75fa302a5c0d2d31aec5e080b2ebe29e1ea08a66,src/edu/stanford/nlp/ie/crf/CRFLogConditionalObjectiveFunction.java,CRFLogConditionalObjectiveFunction,CRFLogConditionalObjectiveFunction,#number[][][][]#number[][]#number#Index#List#number[]#String#String#number#number[][][][]#number#number#number#boolean#number#number[][][][]#,147

Before Change


      this.totalData = data;
    }
    domainDimension = myDomainDimension;
    initEdgeLabels();
    if (multiThreadGrad > 0)
      initializeDataFeatureHash();
  }

  private void initEdgeLabels() {

After Change


    // takes docIndex, returns Triple<prob, E, dropoutGrad>
    Ehat = empty2D();
    E = empty2D();
    if (multiThreadGrad > 1 && prior != DROPOUT_PRIOR) {
      batchE = new double[multiThreadGrad][][];
      for (int t = 0; t < multiThreadGrad; t++)
        batchE[t] = empty2D();
    }
    weights = empty2D();
    if (prior == DROPOUT_PRIOR)
      dropoutPriorGrad = empty2D();
    empiricalCounts(Ehat);
    int myDomainDimension = 0;
    for (int dim : map) {
      myDomainDimension += labelIndices.get(dim).size();
    }
    this.unsupDropoutStartIndex = data.length;
    this.unsupDropoutScale = unsupDropoutScale;
    if (unsupDropoutData != null) {
      this.totalData = new int[data.length + unsupDropoutData.length][][][];
      for (int i=0; i<data.length; i++) {
        this.totalData[i] = data[i];
      }
      for (int i=0; i<unsupDropoutData.length; i++) {
        this.totalData[i+unsupDropoutStartIndex] = unsupDropoutData[i];
      }
    } else {
      this.totalData = data;
    }
    domainDimension = myDomainDimension;
    if (prior == DROPOUT_PRIOR) {
      initEdgeLabels();
      initializeDataFeatureHash();
    }
  }